• hessian
  • quercus/php
  • resin 3.0
  • resin 3.1
  • resin 4.0

  • changes
  • configuration
  • examples
  • installing
  • overview
  • starting

  • guide: admin
  • admin
  • amber
  • bam
  • caching
  • clustering
  • comet
  • database
  • deployment
  • ejb 3.0
  • embedding
  • filters
  • ioc
  • jsf
  • jsp
  • logging
  • messaging
  • quercus
  • remoting
  • security
  • resources
  • servlets
  • third-party
  • troubleshooting
  • virtual host
  • watchdog
  • webapp
  • HOME
  • ABOUT
  • ARTICLES
  • WORKSPACE
  • NEWS
  • PROJECTS
  • PRODUCTS
  • STORE
resin
  • hessian
  • quercus/php
  • resin 3.0
  • resin 3.1
  • resin 4.0

  • changes
  • configuration
  • examples
  • installing
  • overview
  • starting

  • guide: admin
  • admin
  • amber
  • bam
  • caching
  • clustering
  • comet
  • database
  • deployment
  • ejb 3.0
  • embedding
  • filters
  • ioc
  • jsf
  • jsp
  • logging
  • messaging
  • quercus
  • remoting
  • security
  • resources
  • servlets
  • third-party
  • troubleshooting
  • virtual host
  • watchdog
  • webapp
  • HOME
  • ABOUT
  • ARTICLES
  • WORKSPACE
  • NEWS
  • PROJECTS
  • PRODUCTS
  • STORE

The Resin distribution for 3.0.9 has been refactored into two distributions:

  • Resin Professional - Most companies and organizations will use Resin Professional. Includes performance, caching, and clustering capabilities.
  • Resin Open Source (GPL) - Contains all functional components of Resin, including EJB, but excludes performance and clustering capabilities.

The EJB implementation has been refactored to use a new underlying persistence engine (Amber). It would be wise for current CMP/EJB users to take extra care verifying Resin 3.0.9 before putting it into production.

See the EJB 3.0 tutorials for examples.

Resin 3.0.9 includes an implementation the EJB 3.0 early-draft spec features. EJB 3.0 has a number of significant changes over EJB 2.1:

  • Uses JDK 1.5 annotations (@Entity, @Column, etc.) instead of deployment descriptors.
  • Home interfaces are no longer needed
  • Entities are beans (i.e. not pooled objects as in EJB 2.1)
  • Entities can use JDO-style field-enhancement instead of method enhancement

Resin 3.0.9 has an experimental support for annotation-based transactions. The annotations use the EJB 3.0 markers. The enhancement is configured as part of the <class-loader> configuration.

See the @ResinEnhanced transaction tutorial for an example.

The following code instructs Resin to enhance MyBean so a transaction is always started when businessMethod is called. The ResinEnhanced is required.

package qa; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import com.caucho.java.enhancer.ResinEnhanced; @ResinEnhanced public class MyBean { ... @TransactionAttribute(TransactionAttributeType.REQUIRED) public void businessMethod(String arg1) throws FooException { ... } }

The configuration adds the bytecode enhancer with the transaction enhancer enabled.

<web-xml xmlns="http://caucho.com/ns/resin"> <class-loader> <enhancer resin:type="com.caucho.java.enhancer.ClassEnhancer"> <enhancer resin:type="com.caucho.transaction.enhancer.TransactionEnhancer"/> </enhancer> </class-loader> .. </web-xml>

As an experimental feature, servlets can use JDK 1.5 Injection annotations.

Hessian and Burlap services can now pick up the protocol headers using the ServiceContext.getHeader method.

package qa; import com.caucho.services.server.GenericService; import com.caucho.services.server.ServiceContext; public class MyService extends GenericService { public Object header() { return ServiceContext.getContextHeader("a"); } }

Allows the taglib schema validation to be turned off. This should only be used in the case where a .tld file in a third-party jar is invalid.

The Hessian servlet can now specify its SerializerFactory. You can use this to avoid sending the collection type with Hessian.

<servlet servlet-name="my-service" servlet-class="qa.MyService"> <init> <serializer-factory> <send-collection-type>false<send-collection-type> </serializer-factory> </init> </servlet> <servlet servlet-name="my-service" servlet-class="qa.MyService"> <init> <send-collection-type>false<send-collection-type> </init> </servlet>

The filter-mapping can now accept more sophisticated matches, allowing filters to exclude URLs.

<filter-mapping filter-name="gzip"> <url-pattern> <exclude-regexp>\.(pdf,mov)</exclude-regexp> </url-pattern> </filter-mapping>

JSSE now has an <alias> tag to select the alias from the keystore.

com.caucho.jsp.JspCompiler can now accept a -conf argument, which points to a web-app configuration.

<web-app xmlns="http://caucho.com/ns/resin"> <document-directory>/opt/www/foo</document-directory> <resin:import path="/opt/resin/conf/app-default.xml"/> </web-app> unix> java com.caucho.jsp.JspCompiler -conf /opt/resin/compile-app.xml" test/foo.jsp

The preloaded tlds can now be configured with the <tld-file-set> tag. By default all tlds in WEB-INF are loaded. In some cases where the WEB-INF contains many files, this is inappropriate.

<web-app xmlns="http://caucho.com/ns/resin"> <jsp> <tld-file-set dir="WEB-INF"> <include name="tld/**/*.tld"/> </tld-file-set> </jsp> </web-app>
  • HOME |
  • CONTACT US |
  • DOCUMENTATION |
  • SALES |
  • WIKI
Copyright (c) 1998-2009 Caucho Technology, Inc. All rights reserved.
caucho® , resin® and quercus® are registered trademarks of Caucho Technology, Inc.
  • HOME |
  • CONTACT US |
  • DOCUMENTATION |
  • SALES |
  • WIKI
Copyright (c) 1998-2009 Caucho Technology, Inc. All rights reserved.
caucho® , resin® and quercus® are registered trademarks of Caucho Technology, Inc.